Tenemos un dataset con riqueza de especies en las islas Galápagos. Nos preguntamos si hay un efecto de las variables: área de la isla, elevación máxima de la isla y distancia a la isla más próxima en la riqueza de especies.
Variables:
Area: área de la isla
Elevation: elevación máxima de la isla
Nearest: distancia isla más próxima
Species: riqueza de especies
Pasos que seguir
Instalar y cargar el paquete faraway (data(gala))
Representar gráficamente relación variable respuesta con las variables explicativas y correlación variables
library(ggplot2)library(patchwork)plot1 <-ggplot(data = gala, aes(x = Area , y = Species)) +geom_point(color ="blue", size =1.5) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = Elevation , y = Species)) +geom_point(color ="red", size =1.5) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = Nearest , y = Species)) +geom_point(color ="darkgreen", size =1.5) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
Analysis of Variance Table
Response: Species
Df Sum Sq Mean Sq F value Pr(>F)
Area 1 145470 145470 22.2592 7.076e-05 ***
Elevation 1 65664 65664 10.0476 0.003882 **
Nearest 1 29 29 0.0045 0.947179
Residuals 26 169918 6535
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4. Comprobación supuestos del modelo
par(mfcol=c(2,2))plot(lm.gal0)
Ausencia de homocedasticidad, normalidad y linealidad. Y valores atípicos.No sirve modelo.
library(car)vif(lm.gal0)
Area Elevation Nearest
2.373470 2.344460 1.025189
Transformación variable respuesta
gala$log_Sp <-log(gala$Species)plot1 <-ggplot(data = gala, aes(x = Area , y = log_Sp)) +geom_point(color ="blue", size =1.5) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = Elevation , y = log_Sp)) +geom_point(color ="red", size =1.5) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = Nearest , y = log_Sp)) +geom_point(color ="darkgreen", size =1.5) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
plot1 + plot2 + plot3
Sigue sin ser lineal la relación.
Transformación variables predictoras
gala$log_area <-log(gala$Area)gala$log_elevacion <-log(gala$Elevation)gala$log_near <-log(gala$Nearest)plot1 <-ggplot(data = gala, aes(x = log_area , y = log_Sp)) +geom_point(color ="blue", size =2) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = log_elevacion , y = log_Sp)) +geom_point(color ="red", size =2) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = log_near , y = log_Sp)) +geom_point(color ="darkgreen", size =2) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
Call:
lm(formula = log_Sp ~ log_area, data = gala)
Residuals:
Min 1Q Median 3Q Max
-1.5442 -0.4001 0.0941 0.5449 1.3752
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.9037 0.1571 18.484 < 2e-16 ***
log_area 0.3886 0.0416 9.342 4.23e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7842 on 28 degrees of freedom
Multiple R-squared: 0.7571, Adjusted R-squared: 0.7484
F-statistic: 87.27 on 1 and 28 DF, p-value: 4.23e-10
log(Species) = 2.9 + 0.39 log(Area)
Gráfico de predicciones
library(broom)library(tidyverse)library(dplyr)preds <-augment(lm.gal3, type.predict ="response", se_fit =TRUE)preds <- preds %>%mutate(lower = .fitted -1.96* .se.fit,upper = .fitted +1.96* .se.fit)ggplot(data = preds, aes(x = log_area, y = log_Sp)) +geom_point(color ="blue", size =2) +geom_line(aes(y = .fitted)) +geom_ribbon(aes(ymin = lower, ymax = upper), alpha =0.2) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Predicciones modelo de regresión" ) +theme_minimal()
Ejercicio 2: Modelo factorial
Tenemos un dataset con biomasa leñosa en un área mediterránea. Nos preguntamos si hay un efecto de la variable cobertura arbórea considerando dos niveles de sequía estival.
Variables:
biomasa: biomasa leñosa
cobertura: cobertura arbórea
sequia: sequía o lluvia estival
Pasos que seguir
Cargar los datos (cobertura.csv)
Representar gráficamente relación variable respuesta con las variables explicativas